import {
  Column,
  Entity,
  PrimaryGeneratedColumn,
  CreateDateColumn
} from 'typeorm'

/**
 * 用户实体类
 * 用于映射数据库中的用户表，存储用户基本信息和存储空间数据
 */
@Entity() // sql table === 'user'
export class User {
  @PrimaryGeneratedColumn()
  id: number // 用户唯一标识ID

  @Column({ unique: true })
  email: string // 用户邮箱，唯一

  @Column()
  password: string // 用户密码（已加密）

  @Column()
  nickname: string // 用户昵称

  @Column({
    default: 10737418240,
    type: 'bigint',
    comment: '默认10GB（单位：字节）'
  })
  availableSpace: number // 用户可用存储空间（单位：字节）

  @Column({ default: 0 })
  usedSpace: number // 已使用的存储空间（单位：字节）

  @CreateDateColumn()
  createdAt: Date // 用户创建时间

  @Column({ default: false })
  isAdmin: boolean // 是否为管理员
}
